

#include "MyProject.h"

/**
 * @brief 读取 AS5600 的角度数据
 * @param  hi2c I2C 句柄
 * @retval 返回角度值（0-4095）
 */
/******************************************************************************/
uint16_t I2C_getRawCount()
{
    uint8_t angle_data[2] = {0};   // 存储高、低字节
    uint16_t angle = 0;            // 最终角度
    // 读取角度寄存器的高位数据
    if (HAL_I2C_Mem_Read(&hi2c1, 0x6c, 0x0c, I2C_MEMADD_SIZE_8BIT, &angle_data[0], 2, 50) != HAL_OK) {
        // 读取错误处理
        printf("angle error \n");
        //return 0xFFFF;
    }
    // 组合高位和低位，形成 12 位的角度值
    angle = ((uint16_t)angle_data[0] << 8) | angle_data[1];
    angle &= 0x0FFF;  // 取低 12 位
    //printf("angle : %d\n", angle);
    return angle;
}
/******************************************************************************/



